#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include "SeqList.h"

//void TestSL1()
//{
//	SL sl;
//	SLInit(&sl);
//	SLPushBack(&sl, 1);
//	SLPushBack(&sl, 2);
//	SLPushBack(&sl, 3);
//	SLPushBack(&sl, 4);
//	SLPushBack(&sl, 5);
//	SLPushBack(&sl, 6);
//	SLPushBack(&sl, 7);
//	SLPushBack(&sl, 8);
//	SLPushBack(&sl, 9);
//	SLPrint(&sl);
//
//	SLPushFront(&sl, 10);
//	SLPushFront(&sl, 20);
//	SLPushFront(&sl, 30);
//	SLPushFront(&sl, 40);
//	SLPrint(&sl);
//
//	SLDestroy(&sl);
//}

//void TestSL2()
//{
//	SL sl;
//	SLInit(&sl);
//	SLPushBack(&sl, 1);
//	SLPushBack(&sl, 2);
//	SLPushBack(&sl, 3);
//	SLPushBack(&sl, 4);
//	SLPushBack(&sl, 5);
//	SLPrint(&sl);
//
//	SLPopBack(&sl);
//	SLPrint(&sl);
//
//	SLPopBack(&sl);
//	SLPopBack(&sl);
//	SLPopBack(&sl);
//	SLPopBack(&sl);
//	SLPrint(&sl);
//
//	//SLPopBack(&sl);
//	//SLPrint(&sl);
//
//	SLPushFront(&sl, 10);
//	SLPushFront(&sl, 20);
//	SLPushFront(&sl, 30);
//	SLPushFront(&sl, 40);
//	SLPrint(&sl);
//
//	SLDestroy(&sl);
//}

// �໭ͼ
// дһ������������һ�� ����һ�� -> һ��һ����ӡ
//void TestSL3()
//{
//	SL sl;
//	SLInit(&sl);
//	SLPushBack(&sl, 1);
//	SLPushBack(&sl, 2);
//	SLPushBack(&sl, 3);
//	SLPushBack(&sl, 4);
//	SLPushBack(&sl, 5);
//	SLPrint(&sl);
//
//	SLPopFront(&sl);
//	SLPrint(&sl);
//
//	SLPopFront(&sl);
//	SLPrint(&sl);
//
//	SLPopFront(&sl);
//	SLPrint(&sl);
//
//	SLPopFront(&sl);
//	SLPrint(&sl);
//
//	SLPopFront(&sl);
//	SLPrint(&sl);
//
//	/*SLPopFront(&sl);
//	SLPrint(&sl);*/
//}

void TestSL4()
{
	//SL* ptr = NULL;
	//SLInit(ptr);

	SL sl;
	SLInit(&sl);
	SLPushBack(&sl, 1);
	SLPushBack(&sl, 2);
	SLPushBack(&sl, 3);
	SLPushBack(&sl, 4);
	SLPushBack(&sl, 5);
	SLPrint(&sl);

	SLDestroy(&sl);

	SLInsert(&sl, 2, 20);
	SLInsert(&sl, 1, 10);
}

void TestSL5()
{
	SL sl;
	SLInit(&sl);
	SLPushBack(&sl, 1);
	SLPushBack(&sl, 2);
	SLPushBack(&sl, 3);
	SLPushBack(&sl, 4);
	SLPushBack(&sl, 5);
	SLPrint(&sl);

	SLErase(&sl, 3);
	SLPrint(&sl);

	SLErase(&sl, 3);
	SLPrint(&sl);

	int pos = SLFind(&sl, 2);
	if (pos != -1)
	{
		SLErase(&sl, pos);
	}
	//SLErase(&sl, 3);
	//SLPrint(&sl);
}

//int main()
//{
//	//TestSL1();
//	//TestSL2();
//	//TestSL3();
//	TestSL4();
//	TestSL5();
//
//	return 0;
//}

//int main()
//{
//	//Խ���һ��������
//	int a[10];
//	//Խ����������ᱨ��
//	printf("%d\n", a[10]);
//	printf("%d\n", a[11]);
//
//	//Խ��д���ܻᱨ��
//	//a[10] = -1;
//	//a[11] = 1;
//
//	a[15] = 1;
//
//
//	return 0;
//}

//���飬д�ú������ȵ������ԣ�û�����⣬�����д�˵�
void menu()
{
	printf("*******************************\n");
	printf("1. β������  2. βɾ����\n");
	printf("3. ͷ������  4. ͷɾ����\n");
	printf("5. ��ӡ����  0. �˳�\n");
	printf("*******************************\n");
}

int main()
{
	SL s;
	SLInit(&s);
	int option = 0;
	do
	{
		menu();
		printf("���������ѡ��:>");
		scanf("%d", &option);
		if (option == 1)
		{
			///*printf("���������Ҫβ������ݣ���-1����");
			//int x = 0;
			//scanf("%d", &x);
			//while (x != -1)
			//{
			//	SLPushBack(&s, x);
			//	scanf("%d", &x);
			//}*/

			printf("�������������Ҫβ������ݸ���������:>");
			int n = 0;
			scanf("%d", &n);
			for (int i = 0; i < n; i++)
			{
				int x = 0;
				scanf("%d",&x);
				SLPushBack(&s, x);
			}
		}
		else if (option == 2)
		{

		}
		else if (option == 3)
		{

		}
		else if (option == 4)
		{

		}

		else if(option == 5)
		{
			SLPrint(&s);
		}
		else if (option == 0)
		{
			break;
		}

		else
		{
			printf("�޴�ѡ�����������");
		}

	} while (option != 0);
	return 0;
}